1. Field of the Invention
The present invention relates to an execution multiplicity control system dynamically controlling the execution multiplicity of a plurality of service objects in a distributed object system implemented by the objects.
2. Description of the Related Art
In recent years, systems utilizing networks such as the Internet and intranets have rapidly prevailed. With this prevalence, the load on the information processing apparatuses constituting these systems has become increased. Thus, in centers such as system centers and data centers of companies, improvement of the service response speed by distributing the load to a plurality of resources is demanded. Furthermore, mechanisms are demanded that realize optimization of the load balance at the low-cost and within limited hardware resources and software resources while improving the efficiency of use of the resources.
As a technique for executing such load distribution, for example, in the Japanese Patent Application Laid-open Publication No. 07-93238, a technique is disclosed, in which objects executing a same process are arranged in a plurality of server machines and processing requests from clients are distributed to the objects. In the technique described in the Japanese Patent Application Laid-open Publication No. 07-93238, a metric string is transmitted to each of the server machines and the responses to the string are analyzed when a service request from a client is processed. Thereby, the load status of the server machines is measured and the server machine with the lowest load is determined. Thereby, a server for processing the service request from the client is dynamically determined and the service request is transferred to the server machine having been determined for processing.
In the Japanese Patent Application Laid-open Publication No. 2000-172654, a technique is disclosed, in which a service object is duplicated into a server machine with low load and a processing request from a client is transferred to the duplicated service object. In the technique described in the Japanese Patent Application Laid-open Publication No. 2000-172654, it is not that a plurality of objects offering a same service are arranged in advance, but a duplicate of a server object is dynamically produced during the operation of a server program and the duplicated object is transferred to another computer having a low CPU utilization and is caused to run on the computer. Then, for a remote method invocation from the client computer, the duplicated object is made to perform remote method invocation.
By the way, among the recent systems, a system (hereinafter, referred to as “distributed object system”) has a configuration in which a plurality of service objects are sequentially invoked where, for example, a service object invoked directly by a client apparatus invokes another service object during its process.
Here, in order to realize load distribution in a distributed object system, it can be considered to configure so as to simply increase the execution multiplicity of the service object, for example, when the load on a service object invoked directly from a client is increased. However, in this case, when factors for load increase of a first service object exist in another service object executed subsequent thereto, load balancing effect corresponding to the resource consumption cannot be expected. Furthermore, specific service objects consume the resources intensively. Thereby the load balance of the whole system cannot be maintained.
As another method for realizing load balancing in a distributed object system, a method can be considered, in which a series of other service objects than a service object invoked directly by a client, that are executed following the service object invoked by the client, are multiplexed together. However, in this case, service objects that do not need to be multiplexed would be multiplexed and resources may be consumed wastefully in the case of this method as well.
Furthermore, as another method for realizing the load balancing, a method can be considered, in which load is measured for each of the combinations of adjacent service objects in a series of service objects and load distribution is carried out respectively for each of the combinations. However, when the amount of resources for multiplexing is limited, multiplexing may not be executed for the portion that essentially needs to be multiplexed in this method.